// Generated automatically from javax.jdo.PersistenceManager for testing purposes

package javax.jdo;

import java.util.Collection;
import java.util.Date;
import java.util.EnumSet;
import java.util.Map;
import java.util.Set;
import javax.jdo.Extent;
import javax.jdo.FetchGroup;
import javax.jdo.FetchPlan;
import javax.jdo.JDOException;
import javax.jdo.JDOQLTypedQuery;
import javax.jdo.ObjectState;
import javax.jdo.PersistenceManagerFactory;
import javax.jdo.Query;
import javax.jdo.Transaction;
import javax.jdo.datastore.JDOConnection;
import javax.jdo.datastore.Sequence;
import javax.jdo.listener.InstanceLifecycleListener;

public interface PersistenceManager extends AutoCloseable
{
    <T> JDOQLTypedQuery<T> newJDOQLTypedQuery(java.lang.Class<T> p0);
    <T> T detachCopy(T p0);
    <T> T getObjectById(java.lang.Class<T> p0, Object p1);
    <T> T makePersistent(T p0);
    <T> T newInstance(java.lang.Class<T> p0);
    <T> T[] detachCopyAll(T... p0);
    <T> T[] makePersistentAll(T... p0);
    <T> java.util.Collection<T> detachCopyAll(java.util.Collection<T> p0);
    <T> java.util.Collection<T> makePersistentAll(java.util.Collection<T> p0);
    <T> javax.jdo.Extent<T> getExtent(java.lang.Class<T> p0);
    <T> javax.jdo.Extent<T> getExtent(java.lang.Class<T> p0, boolean p1);
    <T> javax.jdo.Query<T> newNamedQuery(java.lang.Class<T> p0, String p1);
    <T> javax.jdo.Query<T> newQuery(java.lang.Class<T> p0);
    <T> javax.jdo.Query<T> newQuery(java.lang.Class<T> p0, String p1);
    <T> javax.jdo.Query<T> newQuery(java.lang.Class<T> p0, java.util.Collection<T> p1);
    <T> javax.jdo.Query<T> newQuery(java.lang.Class<T> p0, java.util.Collection<T> p1, String p2);
    <T> javax.jdo.Query<T> newQuery(javax.jdo.Extent<T> p0);
    <T> javax.jdo.Query<T> newQuery(javax.jdo.Extent<T> p0, String p1);
    Class getObjectIdClass(Class p0);
    Collection getObjectsById(Collection p0);
    Collection getObjectsById(Collection p0, boolean p1);
    Date getServerDate();
    FetchGroup getFetchGroup(Class p0, String p1);
    FetchPlan getFetchPlan();
    Integer getDatastoreReadTimeoutMillis();
    Integer getDatastoreWriteTimeoutMillis();
    JDOConnection getDataStoreConnection();
    Map<String, Object> getProperties();
    Object getObjectById(Object p0);
    Object getObjectById(Object p0, boolean p1);
    Object getObjectId(Object p0);
    Object getTransactionalObjectId(Object p0);
    Object getUserObject();
    Object getUserObject(Object p0);
    Object newObjectIdInstance(Class p0, Object p1);
    Object putUserObject(Object p0, Object p1);
    Object removeUserObject(Object p0);
    Object[] getObjectsById(Object... p0);
    Object[] getObjectsById(boolean p0, Object... p1);
    PersistenceManagerFactory getPersistenceManagerFactory();
    Query newQuery();
    Query newQuery(Object p0);
    Query newQuery(String p0);
    Query newQuery(String p0, Object p1);
    Sequence getSequence(String p0);
    Set getManagedObjects();
    Set getManagedObjects(Class... p0);
    Set getManagedObjects(EnumSet<ObjectState> p0);
    Set getManagedObjects(EnumSet<ObjectState> p0, Class... p1);
    Set<String> getSupportedProperties();
    Transaction currentTransaction();
    boolean getCopyOnAttach();
    boolean getDetachAllOnCommit();
    boolean getIgnoreCache();
    boolean getMultithreaded();
    boolean isClosed();
    void addInstanceLifecycleListener(InstanceLifecycleListener p0, Class... p1);
    void checkConsistency();
    void close();
    void deletePersistent(Object p0);
    void deletePersistentAll(Collection p0);
    void deletePersistentAll(Object... p0);
    void evict(Object p0);
    void evictAll();
    void evictAll(Collection p0);
    void evictAll(Object... p0);
    void evictAll(boolean p0, Class p1);
    void flush();
    void makeNontransactional(Object p0);
    void makeNontransactionalAll(Collection p0);
    void makeNontransactionalAll(Object... p0);
    void makeTransactional(Object p0);
    void makeTransactionalAll(Collection p0);
    void makeTransactionalAll(Object... p0);
    void makeTransient(Object p0);
    void makeTransient(Object p0, boolean p1);
    void makeTransientAll(Collection p0);
    void makeTransientAll(Collection p0, boolean p1);
    void makeTransientAll(Object... p0);
    void makeTransientAll(boolean p0, Object... p1);
    void refresh(Object p0);
    void refreshAll();
    void refreshAll(Collection p0);
    void refreshAll(JDOException p0);
    void refreshAll(Object... p0);
    void removeInstanceLifecycleListener(InstanceLifecycleListener p0);
    void retrieve(Object p0);
    void retrieve(Object p0, boolean p1);
    void retrieveAll(Collection p0);
    void retrieveAll(Collection p0, boolean p1);
    void retrieveAll(Object... p0);
    void retrieveAll(boolean p0, Object... p1);
    void setCopyOnAttach(boolean p0);
    void setDatastoreReadTimeoutMillis(Integer p0);
    void setDatastoreWriteTimeoutMillis(Integer p0);
    void setDetachAllOnCommit(boolean p0);
    void setIgnoreCache(boolean p0);
    void setMultithreaded(boolean p0);
    void setProperty(String p0, Object p1);
    void setUserObject(Object p0);
}
